草庐IT

MySQL Workbench 符号引用

全部标签

c# - 将通用 Windows C# 类库引用添加到通用 Windows C++ DLL 项目 Visual Studio 2015

如标题所述,我正在尝试将UWPC#类库引用添加到UWPC++DLL项目。这两个项目都针对Windows10v10.0.14393.0。添加引用后,一切似乎都是有效的,引用显示在引用列表下,没有列出任何错误。当您尝试使用引用并编译时,出现以下错误:C2871anamespacewiththisnamedoesnotexist.我是不是漏掉了什么?创建新的通用WindowsC++项目时,唯一的选项是DLL、静态库和Windows运行时组件。C++没有类库选项。我尝试了所有三个不同的项目,结果相同。有人可以提供解决方案和/或解释为什么我无法从UWPC++项目引用UWPC#类库吗?这似乎应该是

c++ - 未定义对 clang 中函数指针的变量模板的引用,但不是 gcc

#includestaticconstexprboolisSSE2=true;templatestaticvoid(*fp)();templatestaticvoidfoo_c(){std::coutstaticvoidfoo_sse2(){std::cout=foo_sse2;elsefp=foo_c;fp();return0;}我有一个使用变量模板的项目,它本身就是一个指向函数的指针。上面的示例代码在GCC6.3中编译和执行良好,但在clang3.9.1中给出警告和错误。$clang++"Source.cpp"-o"foo.exe"-std=c++14-O2Source.cpp:6

c++ - 如何在默认模板参数中引用自身类型?

我们有一个reference_counted模板和一个默认的default_deallocator类如下:templateclassdefault_deallocator{voidoperator()(T*obj){deleteobj;}};templateclassreference_counted:T{public:voidretain(){ref_count++;}voidrelease(){ref_count--;if(ref_count==0){deletethis;}}}我们想为reference_counted类添加释放器。但是我们不知道如何编写默认模板参数,因为编译器会

c++ - .natvis - 如何引用模板模板参数?

我正在尝试创建一个.natvisVisualStudio的文件。根据这个page我可以使用$T1,$T2引用模板参数等等。所以在MyClass的情况下$T1将引用类型A.这行得通。但就我而言A本身就是一个模板,我需要引用它的参数,某种$T1-但这显然行不通。 最佳答案 至少在VisualStudio2015中,模板参数伪变量$T1,$T2等似乎实际上对应于类型“名称”表达式中的通配符,而不是严格对应于模板参数。例如,当匹配outer,short,long>,$T1扩展为int,$T2扩展为float和$T3扩展为short,long

c++ - 为什么 std::forward 将左值和右值转换为右值引用?

我想我对std::forward感到困惑.我的函数使用std::forward如下,但为了便于解释,它进行了很多简化和修改。//Thisisanexamplecodetoexplainmyquestionsimply.templatevoidadd(Element&&element){staticstd::vectorvec;vec.push_back(std::forward(element));}我用上面的函数尝试了两种情况;Case1左值参数和Case2右值参数。案例1:左值参数autosome_class=SomeClass();add(some_class);案例2:右值参数

c++ - 函数指针引用参数转换为const

示例代码:classFoo;typedefvoid(*fnptr)(Foo&foo);fnptrgFn;voidmyfoo(constFoo&foo){}intmain(){gFn=&myfoo;}使用clang失败并出现以下错误:main.cpp:9:9:error:assigningto'fnptr'(aka'void(*)(Foo&)')fromincompatibletype'void(*)(constFoo&)':typemismatchat1stparameter('Foo&'vs'constFoo&')gFn=&myfoo;^~~~~~~1errorgenerated.G

C++ 未解析的外部符号(public static int)

当我尝试编译它时,我得到了这个链接器错误:LNK2001unresolvedexternalsymbol"public:staticintHooksXD::night"(?night@HooksXD@@2HA)Theheaderisthis:classHooksXD{public:staticvoidXD3();staticintnight;staticintnight2;};变量是公共(public)的而不是私有(private)的,因为我需要从不在同一个类中的其他voids访问它们。cpp文件:HooksXDlmao;voidHooksXD::XD3(){//thisvoidwil

c++ - 编译器推导超出范围的变量的右值引用

为什么编译器不会自动推断出变量即将超出范围,因此将其视为右值引用?以这段代码为例:#includeintfoo(std::string&&bob);intfoo(conststd::string&bob);intmain(){std::stringbob("");returnfoo(bob);}检查汇编代码清楚地表明,const&版本的“foo”在函数末尾被调用。此处的编译器资源管理器链接:https://godbolt.org/g/mVi9y6编辑:澄清一下,我不是在寻找有关移动变量的替代方法的建议。我也不想理解为什么编译器选择foo的const&版本。这些是我理解得很好的事情。我有

c++ - 何时更喜欢 const 左值引用而不是右值引用模板

目前正在阅读cpr请求库的代码库:https://github.com/whoshuu/cpr/blob/master/include/cpr/api.h注意到这个库的接口(interface)经常使用完美转发。只是学习右值引用,所以这对我来说都是相对较新的。根据我的理解,右值引用、模板化和转发的好处是被环绕的函数调用将通过右值引用而不是值来获取其参数。这避免了不必要的复制。它还可以防止由于引用推导而不得不生成一堆重载。然而,根据我的理解,const左值引用本质上做同样的事情。它避免了重载的需要,并通过引用传递所有内容。需要注意的是,如果被环绕的函数采用非常量引用,它将无法编译。但是,

c++ - C++中的引用和常量混淆

这个问题在这里已经有了答案:assigningchartointreferenceandconstintreferenceinC++(3个答案)关闭5年前。我知道引用只是一个变量的另一个名字,它们在内存中并不作为一个单独的对象存在,但是这里发生了什么doublei=24.7;constint&ri=i;//noticeintherestd::cout我的问题是ri是什么的别名?[某处内存中的值24]